package com.mxm.mirai.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.mxm.mirai.dao.Table_Json;
import com.mxm.mirai.dao.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 漫小猫
 * @since 2020-09-24
 */
public interface UserService extends IService<User> {

    /**
     * 获得密码
     */
    String getPassword(String username);

    /**
     * 获得角色权限
     */
    String getRole(String username);

    /**
     * 修改密码
     */
    Integer UpdatePassword(String username,String password);

    /**
     * 添加用户
     * @param user
     */
    Integer AddUser(User user);

    /**
     * 根据id删除用户
     * @param id
     * @return
     */
    Integer DeleteUser(Integer id);

    /**
     * 更新用户
     * @param user
     * @return
     */
    Integer UpdateUser(User user);

    /**
     * 用户状态置反
     * @param id
     * @return
     */
    Integer UpdateUserBanInversion(Integer id);

    /**
     * 获得存在的用户
     */
    List<String> getUser();

    /**
     * 获取全部用户
     * @return
     */
    List<User> getUserS();


    /**
     * 分页查询所有用户
     * @return
     */
   Table_Json SelectUserListPage(String username,Integer current, Integer size);

    /**
     * 激活用户
     * @param username
     */
    void openUser(String username);
    /**
     * 封号
     */
    void banUser(String username);

    /**
     * 检查用户状态 0/1
     */
    Integer checkUserBanStatus(String username);

    /**
     * 获得用户角色默认的权限
     */
    String getRolePermission(String username);

    /**
     * 获得用户的权限
     */
    String getPermission(String username);

    /**
     *根据账号查询用户数量
     */
    int getUserByUsernameCount(String username);
    /**
     *根据账号查询用户信息
     */
    User getUserByUsername(String username);

    /**
     * 根据Other查询账号
     * @param other
     * @return
     */
    String SelectOtherByUsername(String other);

    /**
     * 修改Other
     * @return
     */
    Integer UpdateUsernameByOther(String username,String other);

    /**
     * 根据用户查询指定信息信息
     * @param username
     * @return
     */
    User SelectUserByUsername(String username);

}